package com.api.API.UserBaseInfoManager;

import com.api.POJO.UserAuth.AuthReturnMsg;
import com.api.POJO.UserBaseInfoManager.BaseInfo;
import com.api.POJO.UserAuth.RegisterAccount;
import com.api.POJO.UserBaseInfoManager.BaseInfoReturnMsg;
import com.api.POJO.UserDataManager.Result.UserDataReturnMsg;
import com.api.POJO.UserDataManager.UserData;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

/**
 * @Description :用户基本信息管理模块API
 * @Author :崔昌赫
 * @Date : 2021/10/19
 */
@FeignClient("UserBaseInfoDataManager")
public interface UserBaseInfoDataManagerAPI {
    @GetMapping("/users/base/info/get/all")
    BaseInfoReturnMsg findAllBaseInfo();

    @PostMapping("/users/base/info/add")
    BaseInfoReturnMsg addNewBaseInfo(@RequestBody BaseInfo baseInfo);

    @GetMapping("/users/base/info/get/uid/{uid}")
    BaseInfoReturnMsg findBaseInfoByUid(@PathVariable String uid);
    @GetMapping("/users/base/info/get/name/{name}")
    BaseInfoReturnMsg findBaseInfoByName(@PathVariable String name);
    @GetMapping("/users/base/info/get/class/{classes}")
    BaseInfoReturnMsg findBaseInfoByClass(@PathVariable String classes);
    @GetMapping("/users/base/info/get/studentid/{studentId}")
    BaseInfoReturnMsg findBaseInfoByStudentId(@PathVariable String studentId);

    @PutMapping("/users/base/info/update/uid/{uid}")
    BaseInfoReturnMsg updateBaseInfoByUid(@PathVariable String uid,@RequestBody BaseInfo baseInfo);
    @PutMapping("/users/base/info/update/name/{name}")
    BaseInfoReturnMsg updateBaseInfoByName(@PathVariable String name,@RequestBody BaseInfo baseInfo);
    @PutMapping("/users/base/info/update/class/{classes}")
    BaseInfoReturnMsg updateBaseInfoByClass(@PathVariable String classes,@RequestBody BaseInfo baseInfo);
    @PutMapping("/users/base/info/update/studentid/{studentId}")
    BaseInfoReturnMsg updateBaseInfoByStudentId(@PathVariable String studentId,@RequestBody BaseInfo baseInfo);

    @DeleteMapping("/users/base/info/delete/uid/{uid}")
    BaseInfoReturnMsg deleteBaseInfoByUid(@PathVariable String uid);
    @DeleteMapping("/users/base/info/delete/name/{name}")
    BaseInfoReturnMsg deleteBaseInfoByName(@PathVariable String name);
    @DeleteMapping("/users/base/info/delete/class/{classes}")
    BaseInfoReturnMsg deleteBaseInfoByClass(@PathVariable String classes);
    @DeleteMapping("/users/base/info/delete/studentid/{studentId}")
    BaseInfoReturnMsg deleteBaseInfoByStudentId(@PathVariable String studentId);


}
